package a.codetop;

public class _22岛屿数量 {
    char[][] g;
    int count=0;
    static int[][] fx = {{-1,0},{1,0},{0,-1},{0,1}};
    public int numIslands(char[][] grid) {
        g=grid;
        //找起点
        for (int i = 0; i < g.length; i++) {
            for (int j = 0; j < g[0].length; j++) {
                if(g[i][j]=='1'){
                    qian(i,j); count++;
                }
            }
        }
        //res
        return count;
    }
    /*只改这里*/
    void qian(int i, int j) {
        for (int k=0;k<fx.length;k++) {
            int x=i+fx[k][0],y=j+fx[k][1];

            //停止
            if(x<0||x>=g.length||y<0||y>=g[0].length //越界
                    || g[x][y]=='0' //可能是水，可能是1走过后涂色涂成0
            ) continue;

            //other全都能走 (con排除后就剩'1')
            g[x][y]='0';
            qian(x,y);
            //g[x][y]='1'; 不还原！

        }
    }
    /*只改这里*/
}
